今天來講一下Kafka的replication機制
Kafka的replication是以partition做單位,方法也很簡單,就是讓replica去訂閱要追蹤的partition。因為這是Queue,所以直接用訂閱的機制就可以處理掉replication。
在每個replica set裡,只會有一個master,這個master負責所有的讀寫工作,其他的slave都只是作備援,所以不會有Day 7講到的不一致問題。
每個replica set會維持一個ISR (In-Sync Replicas)名單,名單內的replica是與master較為同步。若master掛掉,會從這些ISR中多數決挑選出新的master。這個ISR的名單是會變動的。
在寫入時雖然是以master作為窗口,但預設要等到master的資料同步到所有的ISR,該筆資料才算committed,也才能被consumer所看到。